package com.ccys.db.vo.app.home;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.Date;

/**
 * @Author：XLY
 * @Date：2024/1/15 0015
 */

@Data
public class LatestAppointmentVo {

    private AppointmentVo appointment;

    @JsonProperty("home_notification")
    private HomeNotification homeNotification;

    @JsonProperty("singtel_is_active")
    private boolean singtelIsActive;

    @JsonProperty("thinkwell_campaign")
    private ThinkwellCampaign thinkwellCampaign;


    @Data
    public static class AppointmentVo{

        @JsonProperty("booking_id")
        private String bookingId;

        @JsonProperty("appointment_time")
        private Date appointmentTime;

        @JsonProperty("appointment_type")
        private Integer appointmentType;

        @JsonProperty("consult_type")
        private Integer consultType;

        @JsonProperty("specialisation_name")
        private String specialisationName;

        @JsonProperty("doctor_name")
        private String doctorName;

        @JsonProperty("timezone")
        private String timezone;

        @JsonProperty("appointment_status")
        private Integer appointmentStatus;

        @JsonProperty("child_name")
        private String childName;

        @JsonProperty("clinic_name")
        private String clinicName;

        @JsonIgnore
        private String specialisationId;

        @JsonProperty("service_type")
        private Integer serviceType;

        @JsonProperty("documents_required")
        private String documentsRequired;
    }


    @Data
    public static class HomeNotification {

        private String message;

        @JsonProperty("is_read")
        private boolean isRead;

        @JsonProperty("booking_id")
        private String bookingId;

        @JsonProperty("push_type")
        private Integer pushType;

        @JsonProperty("is_child")
        private boolean isChild;

        private String photo;

        @JsonIgnore
        private String objectParams;

        private String title;

        @JsonProperty("short_description")
        private String shortDescription;

        private String content;

        @JsonProperty("is_show_content")
        private boolean isShowContent;

        @JsonProperty("service_type")
        private Integer serviceType;

        @JsonProperty("is_show_proceed")
        private boolean isShowProceed;

        @JsonProperty("url_redirect")
        private String urlRedirect;

    }

    @Data
    public static class ThinkwellCampaign {
        @JsonProperty("is_active")
        private boolean isActive;

        @JsonProperty("campaign_id")
        private String campaignId;

        @JsonProperty("campaign_name")
        private String campaignName;

        @JsonProperty("is_show_app_popup")
        private boolean isShowAppPopup;

        @JsonProperty("is_show_thinkwell_popup")
        private boolean isShowThinkwellPopup;
    }
}
